package Objetos;
import Graficos.Representacion_Grafica;
import Personajes.Mario;
public abstract class Objeto implements Cloneable{
	//atributos de instancia
	protected int posicionX, posicionY;
	protected Representacion_Grafica grafico;
	protected Item item;
	
	/**Constructor. */
	public Objeto(){
		super();
		posicionX = 0;
		posicionY = 0;
		grafico = new Representacion_Grafica();
		item = null;
	}
	
	/**Devuelve la posicion logica x del objeto. */
	public int obtenerX(){
		return posicionX;
	}
	
	/**Devuelve la posicion logica y del objeto. */
	public int obtenerY(){
		return posicionY;
	}
	
	/**Modifica la posicion logica del objeto. */
	public void setPosicion(int x, int y){
		posicionX = x;
		posicionY = y;
	}
	
	public void setRG(Representacion_Grafica g){
		grafico = g;
	}
	
	public Representacion_Grafica getRG(){
		return grafico;
	}
	
	public void setItem(Item i){
		item = i;
	}
	
	public Item getItem(){
		return item;
	}
	
	public abstract void recibirGolpe(Mario m);
	
	/**Clona al objeto. */
	public Object clonar() {
		try {
			return this.clone();
		} catch (CloneNotSupportedException e){
			return null;
		}
	}
}
